home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993 April: Penguin on DISC / ADC Developer CD (1993-04) (''Penguin On DISC'')_iso / Dev.CD Apr 93.iso / Utilities / MPW Interfaces 7.1 Beta / CIncludes / GestaltEqu.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-28  |  14.8 KB  |  378 lines  |  [TEXT/MPS ]

  1. /************************************************************
  2.  
  3. Created: Sunday, January 6, 1991 at 9:27 PM
  4.     GestaltEqu.h
  5.     C Interface to the Macintosh Libraries
  6.  
  7.  
  8.         Copyright Apple Computer, Inc.    1988-1992
  9.         All rights reserved
  10.  
  11.  
  12. ************************************************************/
  13.  
  14.  
  15. #ifndef __GESTALTEQU__
  16. #define __GESTALTEQU__
  17.  
  18. #ifndef __TYPES__
  19. #include <Types.h>
  20. #endif
  21.  
  22.  
  23. enum {
  24.  
  25.  
  26. /************************
  27.  *    Gestalt error codes
  28.  ************************/
  29.     gestaltUnknownErr = -5550,              /* value returned if Gestalt doesn't know the answer */
  30.     gestaltUndefSelectorErr = -5551,        /* undefined selector was passed to Gestalt */
  31.     gestaltDupSelectorErr = -5552,          /* tried to add an entry that already existed */
  32.     gestaltLocationErr = -5553,             /* gestalt function ptr wasn't in sysheap */
  33.  
  34. /**************************
  35.  *    Environment Selectors
  36.  **************************/
  37.  
  38. #define gestaltVersion 'vers'               /* gestalt version */
  39. #define gestaltAddressingModeAttr 'addr'    /* addressing mode attributes */
  40.  
  41.     gestalt32BitAddressing = 0,             /* using 32-bit addressing mode */
  42.     gestalt32BitSysZone = 1,                /* 32-bit compatible system zone */
  43.     gestalt32BitCapable = 2,                /* Machine is 32-bit capable */
  44.  
  45. #define gestaltAliasMgrAttr 'alis'          /* Alias Mgr Attributes */
  46.  
  47.     gestaltAliasMgrPresent = 0,             /* True if the Alias Mgr is present */
  48.     gestaltAliasMgrSupportsRemoteAppletalk = 1,    /* True if the Alias Mgr knows about Remote Appletalk */
  49.  
  50. #define gestaltAppleTalkVersion 'atlk'      /* appletalk version */
  51. #define gestaltAUXVersion 'a/ux'            /*a/ux version, if present */
  52. #define gestaltConnMgrAttr 'conn'           /* connection mgr attributes    */
  53.  
  54.     gestaltConnMgrPresent = 0,
  55.     gestaltConnMgrCMSearchFix = 1,          /* Fix to CMAddSearch?     */
  56.     gestaltConnMgrErrorString = 2,            /* has CMGetErrorString() */
  57.     gestaltConnMgrMultiAsyncIO = 3,            /* CMNewIOPB, CMDisposeIOPB, CMPBRead, CMPBWrite, CMPBIOKill */
  58.  
  59. #define gestaltComponentMgr 'cpnt'            /* Component Mgr version */
  60.  
  61. #define gestaltTSMgrVersion 'tsmv'            /* Text Services Mgr version, if present */
  62.  
  63. #define gestaltCRMAttr 'crm '               /* comm resource mgr attributes */
  64.  
  65.     gestaltCRMPresent = 0,
  66.     gestaltCRMPersistentFix = 1,             /* fix for persistent tools */
  67.     gestaltCRMToolRsrcCalls = 2,             /* has CRMGetToolResource/ReleaseToolResource */
  68.  
  69. #define gestaltCTBVersion 'ctbv'            /* CommToolbox version */
  70. #define gestaltDBAccessMgrAttr 'dbac'       /* Database Access Mgr attributes */
  71.  
  72.     gestaltDBAccessMgrPresent = 0,          /* True if Database Access Mgr present */
  73.  
  74. #define gestaltDITLExtAttr 'ditl'           /* AppenDITL, etc. calls from CTB */
  75.  
  76.     gestaltDITLExtPresent = 0,              /* True if calls are present */
  77.  
  78. #define gestaltEasyAccessAttr 'easy'        /* Easy Access attributes */
  79.  
  80.     gestaltEasyAccessOff = 0,               /* if Easy Access present, but off (no icon) */
  81.     gestaltEasyAccessOn = 1                 /* if Easy Access "On" */
  82. };
  83. enum {
  84.     gestaltEasyAccessSticky = 2,             /* if Easy Access "Sticky" */
  85.     gestaltEasyAccessLocked = 3,            /* if Easy Access "Locked" */
  86.  
  87. #define gestaltEditionMgrAttr 'edtn'        /* Edition Mgr attributes */
  88.  
  89.     gestaltEditionMgrPresent = 0,           /* True if Edition Mgr present */
  90.  
  91. #define gestaltAppleEventsAttr 'evnt'       /* Apple Events attributes */
  92.  
  93.     gestaltAppleEventsPresent = 0,          /* True if Apple Events present */
  94.  
  95. #define gestaltFindFolderAttr 'fold'        /* Folder Mgr attributes */
  96.  
  97.     gestaltFindFolderPresent = 0,             /* True if Folder Mgr present */
  98.  
  99. #define gestaltFontMgrAttr 'font'           /* Font Mgr attributes */
  100.  
  101.     gestaltOutlineFonts = 0,                /* True if Outline Fonts supported */
  102.  
  103. #define gestaltFPUType 'fpu '               /* fpu type */
  104.  
  105.     gestaltNoFPU = 0,                       /* no FPU */
  106.     gestalt68881 = 1,                       /* 68881 FPU */
  107.     gestalt68882 = 2,                       /* 68882 FPU */
  108.     gestalt68040FPU = 3,                    /* 68040 built-in FPU */
  109.  
  110. #define gestaltFSAttr 'fs  '                /* file system attributes */
  111.  
  112.     gestaltFullExtFSDispatching = 0,        /* has really cool new HFSDispatch dispatcher */
  113.     gestaltHasFSSpecCalls = 1,              /* has FSSpec calls    */
  114.     gestaltHasFileSystemManager = 2,        /* has a file system manager */
  115.  
  116. #define gestaltFXfrMgrAttr 'fxfr'           /* file transfer manager attributes */
  117.  
  118.     gestaltFXfrMgrPresent = 0,
  119.     gestaltFXfrMgrMultiFile = 1,            /* supports FTSend and FTReceive */
  120.     gestaltFXfrMgrErrorString = 2,             /* supports FTGetErrorString */
  121.  
  122. #define gestaltHardwareAttr 'hdwr'          /* hardware attributes */
  123.  
  124.     gestaltHasVIA1 = 0,                        /* VIA1 exists */
  125.     gestaltHasVIA2 = 1,                        /* VIA2 exists */
  126.     gestaltHasASC = 3,                        /* Apple Sound Chip exists */
  127.     gestaltHasSCC = 4                        /* SCC exists */
  128. };
  129. enum {
  130.     gestaltHasSCSI            =    7,            /* SCSI exists */
  131.     gestaltHasSoftPowerOff    =    19,            /* Capable of software power off */
  132.     gestaltHasSCSI961        =    21,            /* 53C96 SCSI controller on internal bus */
  133.     gestaltHasSCSI962        =    22,            /* 53C96 SCSI controller on external bus */
  134.      gestaltHasUniversalROM    =    24,            /* Do we have a Universal ROM? */
  135.  
  136. #define gestaltHelpMgrAttr 'help'            /* Help Mgr Attributes */
  137.  
  138.     gestaltHelpMgrPresent = 0,                /* true if help mgr is present */
  139.     gestaltHelpMgrExtensions = 1,            /* true if help mgr extensions are installed */
  140.  
  141. #define gestaltKeyboardType 'kbd '            /* keyboard type */
  142.  
  143.     gestaltMacKbd = 1,
  144.     gestaltMacAndPad = 2,
  145.     gestaltMacPlusKbd = 3,
  146.     gestaltExtADBKbd = 4,
  147.     gestaltStdADBKbd = 5,
  148.     gestaltPrtblADBKbd = 6,
  149.     gestaltPrtblISOKbd = 7,
  150.     gestaltStdISOADBKbd = 8,
  151.     gestaltExtISOADBKbd = 9,
  152.     gestaltADBKbdII = 10,
  153.     gestaltADBISOKbdII = 11,
  154.      gestaltPwrBookADBKbd = 12,
  155.      gestaltPwrBookISOADBKbd = 13,
  156.  
  157. #define gestaltLowMemorySize 'lmem'         /* size of low memory area */
  158. #define gestaltLogicalRAMSize 'lram'        /* logical ram size */
  159. #define gestaltMiscAttr 'misc'              /* miscellaneous attributes */
  160.  
  161.     gestaltScrollingThrottle = 0,           /* true if scrolling throttle on */
  162.     gestaltSquareMenuBar = 2                /* true if menu bar is square */
  163. };
  164. enum {
  165.  
  166. #define gestaltMMUType 'mmu '               /* mmu type */
  167.  
  168.     gestaltNoMMU = 0,                       /* no MMU */
  169.     gestaltAMU = 1,                         /* address management unit */
  170.     gestalt68851 = 2,                       /* 68851 PMMU */
  171.     gestalt68030MMU = 3,                    /* 68030 built-in MMU */
  172.     gestalt68040MMU = 4,                    /* 68040 built-in MMU */
  173.  
  174. #define gestaltStdNBPAttr 'nlup'            /* standard nbp attributes */
  175.  
  176.     gestaltStdNBPPresent = 0,
  177.  
  178. #define gestaltNotificationMgrAttr 'nmgr'   /* notification manager attributes */
  179.  
  180.     gestaltNotificationPresent = 0,         /* notification manager exists */
  181.  
  182. #define gestaltNuBusConnectors 'sltc'       /* bitmap of NuBus connectors*/
  183. #define gestaltOSAttr 'os  '                /* o/s attributes */
  184.  
  185.     gestaltSysZoneGrowable = 0,             /* system heap is growable */
  186.     gestaltLaunchCanReturn = 1,             /* can return from launch */
  187.     gestaltLaunchFullFileSpec = 2,          /* can launch from full file spec */
  188.     gestaltLaunchControl = 3,                 /* launch control support available */
  189.     gestaltTempMemSupport = 4,              /* temp memory support */
  190.     gestaltRealTempMemory = 5,              /* temp memory handles are real */
  191.     gestaltTempMemTracked = 6,              /* temporary memory handles are tracked */
  192.     gestaltIPCSupport = 7,                  /* IPC support is present */
  193.     gestaltSysDebuggerSupport = 8,          /* system debugger support is present */
  194.  
  195. #define gestaltOSTable 'ostt'               /*  OS trap table base  */
  196. #define gestaltToolboxTable 'tbtt'          /*  OS trap table base  */
  197. #define gestaltExtToolboxTable 'xttt'       /* Extended Toolbox trap table base */
  198. #define gestaltLogicalPageSize 'pgsz'       /* logical page size */
  199. #define gestaltPowerMgrAttr 'powr'          /* power manager attributes */
  200.  
  201.     gestaltPMgrExists = 0,
  202.     gestaltPMgrCPUIdle = 1,
  203.     gestaltPMgrSCC = 2,
  204.     gestaltPMgrSound = 3
  205. };
  206. enum {
  207.  
  208. #define gestaltPPCToolboxAttr 'ppc '        /* PPC toolbox attributes */
  209.  
  210. /*
  211.  * PPC will return the combination of following bit fields.
  212.  * e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing
  213.  * indicates PPC is cuurently is only supports real time delivery
  214.  * and both incoming and outgoing network sessions are allowed.
  215.  * By default local real time delivery is supported as long as PPCInit has been called.*/
  216.  
  217.  
  218.     gestaltPPCToolboxPresent = 0x0000,      /* PPC Toolbox is present  Requires PPCInit to be called */
  219.     gestaltPPCSupportsRealTime = 0x1000,    /* PPC Supports real-time delivery */
  220.     gestaltPPCSupportsIncoming = 0x0001,    /* PPC will deny incoming network requests */
  221.     gestaltPPCSupportsOutGoing = 0x0002,    /* PPC will deny outgoing network requests */
  222.  
  223. #define gestaltProcessorType 'proc'         /* processor type */
  224.  
  225.     gestalt68000 = 1,
  226.     gestalt68010 = 2,
  227.     gestalt68020 = 3,
  228.     gestalt68030 = 4,
  229.     gestalt68040 = 5,
  230.  
  231. #define gestaltParityAttr 'prty'            /* parity attributes */
  232.  
  233.     gestaltHasParityCapability = 0,         /* has ability to check parity */
  234.     gestaltParityEnabled = 1,                 /* parity checking enabled */
  235.  
  236. #define gestaltQuickdrawVersion 'qd  '      /* quickdraw version */
  237.  
  238.     gestaltOriginalQD = 0x000,              /* original 1-bit QD */
  239.     gestalt8BitQD = 0x100,                  /* 8-bit color QD */
  240.     gestalt32BitQD = 0x200,                 /* 32-bit color QD */
  241.     gestalt32BitQD11 = 0x210,               /* 32-bit color QDv1.1 */
  242.     gestalt32BitQD12 = 0x220,               /* 32-bit color QDv1.2 */
  243.     gestalt32BitQD13 = 0x230,               /* 32-bit color QDv1.3 */
  244.  
  245. #define    gestaltQuickdrawFeatures    'qdrw'    /* quickdraw features */
  246.  
  247.     gestaltHasColor = 0,                    /* color quickdraw present */
  248.     gestaltHasDeepGWorlds = 1,                /* GWorlds can be deeper than 1-bit */
  249.     gestaltHasDirectPixMaps = 2             /* PixMaps can be direct (16 or 32 bit) */
  250. };
  251. enum {
  252.     gestaltHasGrayishTextOr    = 3,            /* supports text mode grayishTextOr */
  253.  
  254. #define gestaltPhysicalRAMSize 'ram '       /* physical RAM size */
  255. #define gestaltPopupAttr 'pop!'             /* popup cdef attributes */
  256.  
  257.     gestaltPopupPresent = 0,
  258.  
  259. #define gestaltResourceMgrAttr 'rsrc'       /* Resource Mgr attributes */
  260.  
  261.     gestaltPartialRsrcs = 0,                /* True if partial resources exist */
  262.  
  263. #define gestaltScriptMgrVersion 'scri'      /* Script Manager version number    <08/05/89 pke> */
  264. #define gestaltScriptCount 'scr#'           /* number of active script systems    <08/05/89 pke> */
  265. #define gestaltSerialAttr 'ser '            /* Serial attributes */
  266.  
  267.     gestaltHasGPIaToDCDa = 0,               /* GPIa connected to DCDa*/
  268.     gestaltHasGPIaToRTxCa = 1,                 /* GPIa connected to RTxCa clock input*/
  269.     gestaltHasGPIbToDCDb = 2,               /* GPIb connected to DCDb */
  270.  
  271. #define gestaltSoundAttr 'snd '             /* sound attributes */
  272.  
  273.     gestaltStereoCapability = 0,            /* sound hardware has stereo capability */
  274.     gestaltStereoMixing = 1,                /* stereo mixing on external speaker */
  275.     gestaltSoundIOMgrPresent = 3,           /* The Sound I/O Manager is present */
  276.     gestaltBuiltInSoundInput = 4,             /* built-in Sound Input hardware is present */
  277.     gestaltHasSoundInputDevice = 5,         /* Sound Input device available */
  278.     gestaltPlayAndRecord = 6,                /* built-in hardware can play and record simultaneously */
  279.                                             /* the following bits are not defined prior to Sound Mgr 3.0 */
  280.     gestaltPlayFromDisk = 7,                /* play from disk available, set by Sound Mgr 3.0 and later */
  281.     gestaltMultiChannels = 8,                /* multiple channel support, set by Sound Mgr 3.0 and later */
  282.  
  283. #define gestaltStandardFileAttr 'stdf'      /* Standard File attributes */
  284.  
  285.     gestaltStandardFile58 = 0,              /* True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported */
  286.  
  287. #define gestaltTextEditVersion 'te  '       /* TextEdit version number            <08/05/89 pke> */
  288.  
  289.     gestaltTE1 = 1,                         /* TextEdit in MacIIci ROM <8Aug89smb> */
  290.     gestaltTE2 = 2,                         /* TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci) <8Aug89smb> */
  291.     gestaltTE3 = 3,                         /* TextEdit with 6.0.4 Script Systems all but MacIIci <8Aug89smb> */
  292.     gestaltTE4 = 4,                         /* TextEdit in System 7.0 */
  293.     gestaltTE5 = 5,                         /* TextWidthHook available in TextEdit */
  294.  
  295. #define gestaltTermMgrAttr 'term'           /* terminal mgr attributes */
  296.  
  297.     gestaltTermMgrPresent = 0,
  298.     gestaltTermMgrErrorString = 2,
  299.  
  300. #define gestaltTimeMgrVersion 'tmgr'        /* time mgr version */
  301.  
  302.     gestaltStandardTimeMgr = 1              /* standard time mgr is present */
  303. };
  304. enum {
  305.     gestaltRevisedTimeMgr = 2,              /* revised time mgr is present */
  306.     gestaltExtendedTimeMgr = 3,             /* extended time mgr is present */
  307.  
  308. #define gestaltVMAttr 'vm  '                /* virtual memory attributes */
  309.  
  310.     gestaltVMPresent = 0,                   /* true if virtual memory is present */
  311.  
  312. #define gestaltDictionaryMgrAttr 'dict'        /* Dictionary Manager attributes */
  313.  
  314.     gestaltDictionaryMgrPresent = 0,        /* Dictionary Manager attributes */
  315.  
  316. #define gestaltIconUtilities 'icon'            /* Icon Utilities attributes    */
  317.  
  318.     gestaltIconUtilitiesPresent = 0,        /* true if icon utilities are present */
  319.  
  320.  
  321. /*************************
  322.  *    Info-only selectors
  323.  ************************/
  324.  
  325. #define gestaltMachineType 'mach'           /* machine type */
  326.  
  327.     kMachineNameStrID = -16395,
  328.     gestaltClassic = 1,
  329.     gestaltMacXL = 2,
  330.     gestaltMac512KE = 3,
  331.     gestaltMacPlus = 4,
  332.     gestaltMacSE = 5,
  333.     gestaltMacII = 6,
  334.     gestaltMacIIx = 7,
  335.     gestaltMacIIcx = 8,
  336.     gestaltMacSE030 = 9,
  337.     gestaltPortable = 10,
  338.     gestaltMacIIci = 11,
  339.     gestaltMacIIfx = 13,
  340.     gestaltMacClassic = 17,
  341.     gestaltMacIIsi = 18,
  342.     gestaltMacLC = 19
  343. };
  344. enum {
  345.     gestaltQuadra900 = 20,
  346.     gestaltPowerBook170 = 21,
  347.     gestaltQuadra700 = 22,
  348.     gestaltClassicII = 23,
  349.     gestaltPowerBook100 = 24,
  350.     gestaltPowerBook140 = 25,
  351.     gestaltQuadra950 = 26,
  352.     gestaltMacLCII = 37,
  353.     gestaltPowerBook145 = 54
  354.  
  355. #define gestaltMachineIcon 'micn'           /* machine icon */
  356. #define gestaltROMSize 'rom '               /* rom size */
  357. #define gestaltROMVersion 'romv'            /* rom version */
  358. #define gestaltSystemVersion 'sysv'         /* system version*/
  359. };
  360.  
  361. #ifdef __cplusplus
  362. extern "C" {
  363. #endif
  364. #if SystemSevenOrLater
  365. #pragma parameter __D0 Gestalt(__D0,__A1)
  366. pascal OSErr Gestalt(OSType selector,long *response)
  367.     = {0xA1AD,0x2288};
  368. #else
  369. pascal OSErr Gestalt(OSType selector,long *response);
  370. #endif
  371. pascal OSErr NewGestalt(OSType selector,ProcPtr gestaltFunction);
  372. pascal OSErr ReplaceGestalt(OSType selector,ProcPtr gestaltFunction,ProcPtr *oldGestaltFunction);
  373. #ifdef __cplusplus
  374. }
  375. #endif
  376.  
  377. #endif
  378.